﻿/** Variaveis Globais **/
usuario = '';
carrinho = '';
function botoes() {
    $('button').each(function() {
        switch ($(this).text()) {
            case 'Excluir':
                $(this).button({
                    icons: { primary: 'ui-icon-trash' }
                });
                break;
            case 'Pesquisar':
                $(this).button({
                    icons: { primary: 'ui-icon-zoomin' }
                });
                break;
            case 'Buscar':
                $(this).button({
                    icons: { primary: 'ui-icon-search' }
                });
                break;
            case 'Comprar':
                $(this).button({
                    icons: { primary: 'ui-icon-circle-check' }
                });
                break;
            case 'Limpar':
                $(this).button({
                    icons: { primary: 'ui-icon-cancel' }
                });
                break;
            case 'Cancelar':
                $(this).button({
                    icons: { primary: 'ui-icon-cancel' }
                });
                break;
            case 'Avançar':
                $(this).button({
                    icons: { primary: 'ui-icon-carat-1-e' }
                });
                break;
            case 'Voltar':
                $(this).button({
                    icons: { primary: 'ui-icon-carat-1-w' }
                });
                break;
            case 'Salvar':
                $(this).button({
                    icons: { primary: 'ui-icon-disk' }
                });
                break;
            case 'Adicionar':
                $(this).button({
                    icons: { primary: 'ui-icon-plus' }
                });
                break;
            default:
                    $(this).button();
        }
    });
}
//Exibe a caixa de login e senha para acessar o modo cliente
function login() {
    $('#login').dialog({
        modal: true,
        resizable: false,
        draggable: false,
        buttons: {
            Login: function () {
                login_sys();
                $(this).find(':input').val('');
            },
            Cancelar: function () {
                $(this).find(':input').val('');
                $(this).dialog('destroy');
            }
        },
        open: function () {
            $(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();
        },
        title: 'Login',
        width: 300
    });
}
//Executa o médoto para autenticação
function login_sys() {
    $.ajax({
        url: '/Login/Autenticacao',
        type: 'POST',
        dataType: 'json',
        beforeSend: function () { $('#loading, #msg-loading').show(); },
        data: { 'usuario': $('#txt_login_nome').val(),
            'senha': $('#txt_login_senha').val()
        },
        success: function (data, textStatus) {
            if (data.sucesso) {
                $('#login').hide();
                $('#acesso-off').hide();
                $('#lbl_user').text(data.usuario);
                $('#perfil').show();
                $('#carrinho').show();
                $('#loading, #msg-loading').hide();
            }
            else {
                modalAlerta(data.mensagem);
                $('#txt_login_nome').val('');
                $('#txt_login_senha').val('');
                $('#loading, #msg-loading').hide();
            }
        },
        error: function () { $('#loading, #msg-loading').hide(); }
    });
    $('#login').dialog('destroy');
}
function logout() {
    $.ajax({
        url: '/Login/Logout',
        dataType: 'json',
        beforeSend: function () { $('#loading, #msg-loading').show(); },
        success: function (json) {
            if(json.success){
                $('#acesso-off').show();
                $('#perfil').hide();
                $('#carrinho').hide();
                window.location = '/Oferta';
            } 
            else 
            {
                modalAlerta(json.mensagem);
            }
            $('#loading, #msg-loading').hide();
        },
        error: function () { $('#loading, #msg-loading').hide(); },
    });
}
//Função para quando houver algum erro, exibir em uma modal
function modalAlerta(mensagem) {
    $("#dialog").html(mensagem);
    $("#dialog").dialog({
        modal: true,
        resizable: false,
        draggable: false,
        title: 'SCP',
        buttons: {
            OK: function() {
                $(this).dialog('destroy');
            }
        },
        open: function() {
            $(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();
        }
    });    
}
function carregaEstado() {
    var opcoes = '<option value="">Selecione</option>';
    $.ajax({
        url: '/Localidade/Estado',
        dataType: 'json',
        beforeSend: function () { $('#loading, #msg-loading').show(); },
        success: function (json) {
            $(json.id).each(function(i, valor){
                opcoes += '<option value=\'' + json.id[i] + '\'>' + json.descricao[i] + '</option>';
            });
            $('#slcEstado_cliente').append(opcoes);
            $('#loading, #msg-loading').hide();
        },
        error: function () { $('#loading, #msg-loading').hide(); },
    });
}
function carregaCidade(estadoId) {
    var opcoes = '<option value="">Selecione</option>';
    $.ajax({
        url: '/Localidade/Cidade/' + estadoId,
        dataType: 'json',
        beforeSend: function () { $('#loading, #msg-loading').show(); },
        success: function (json) {
            $(json.id).each(function(i, valor){
                opcoes += '<option value=\'' + json.id[i] + '\'>' + json.descricao[i] + '</option>';
            });
            $('#slcCidade_cliente').append(opcoes);
            $('#loading, #msg-loading').hide();
        },
        error: function () { $('#loading, #msg-loading').hide(); },
    });
}
function checaCaptcha(){
    $.ajax({
        url: 'Cliente/VerificaAutenticidade/',
        type: 'POST',
        dataType: 'json',
        beforeSend: function(){ $('#loading, #msg-loading').show(); },
        data: {
            recaptcha_challenge_field: $('#recaptcha_challenge_field').val(),
            recaptcha_response_field: $('#recaptcha_response_field').val()
            
        },
        success: function(json){
            $('#loading, #msg-loading').hide();
            if(json.sucesso){
                saveCliente(json.opcao);
            } else {
                modalAlerta(json.mensagem);
            }
        },
        error: function() { $('#loading, #msg-loading').hide(); }
    });
}
function validaSenha(){
    var a = $('#txtSenha_cliente').val();
    var b = $('#txtVerificaSenha_cliente').val();
    var retorno = true;

    if(a !== b){
        modalAlerta("A senha está diferente da senha de confirmação. Por favor, informe as senhas igualmente.");
        retorno = false;
    }

    return retorno;
}
function validaCamposObrigatorios(){
    var retorno = true;
    var cont = 0;

    var txt = $('input:text:visible, input:password:visible').not('#recaptcha_response_field, #txt_busca');

    txt.each(function(){
        cont = $(this).val() === "" ? cont + 1 : cont;
    });

    retorno = cont > 0 ? false : true;

    if (retorno == false) {
        modalAlerta("Todos os campos são obrigatórios, mas não se preocupe, é rapidinho. Por favor, preencha todos os campos.");
    }

    return retorno;
}
function limparCampos() {
    var txt = $('input:text:visible, input:password:visible, textarea').not('#recaptcha_response_field, #txt_busca');

    txt.each(function(){
       $(this).val("");
    });
}
$.validaEmail = function (email)
{
    er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
    if(er.exec(email))
        return true;
    else
        modalAlerta("Parece que o email está incorreto. Por favor, informe um endereço de email válido.");
        return false;
};
function saveCliente(opcao) {
    switch(opcao){
        case 'Add':
            $.ajax({
                url: '/Cliente/Create',
                type: 'POST',
                dataType: 'json',
                beforeSend: function(){ $('#loading, #msg-loading').show(); },
                data: { 
                    'nome_add': $('#txtNome_cliente').val(),
                    'email_add': $('#txtEmail_cliente').val(),
                    'login_add': $('#txtUsuario_cliente').val(),
                    'senha_add': $('#txtVerificaSenha_cliente').val(),
                    'endereco_add': $('#txtEndereco_cliente').val(),
                    'numero_add': $('#txtNumero_cliente').val(),
                    'bairro_add': $('#txtBairro_cliente').val(),
                    'comple_add': $('#txtComplemento_cliente').val(),
                    'estado_add': $('#slcEstado_cliente').val(),
                    'cidade_add': $('#slcCidade_cliente').val(),
                    'cep_add': $('#txtCep_cliente').val(),
                    'tel_add': $('#txtTelefone_cliente').val(),
                    'cel_add': $('#txtCelular_cliente').val(),
                    'aceito_email_add': $('#chkRecebeEmail_cliente').attr('checked')
                },
                success: function(json){
                    $('#loading, #msg-loading').hide();
                    if(json.sucesso){
                        modalAlerta('Usuário cadastrado no sistema com sucesso.');
                    } else {
                        modalAlerta(json.mensagem);
                    }
                },
                error: function() { $('#loading, #msg-loading').hide(); }
            });
            break;
        case 'Atualiza':
            $.ajax({
                url: '/Cliente/AtualizaEndereco',
                type: 'POST',
                dataType: 'json',
                beforeSend: function(){ $('#loading, #msg-loading').show(); },
                data: { 
                    'endereco_edit': $('#txtEndereco_cliente').val(),
                    'numero_edit': $('#txtNumero_cliente').val(),
                    'bairro_edit': $('#txtBairro_cliente').val(),
                    'comple_edit': $('#txtComplemento_cliente').val(),
                    'estado_edit': $('#slcEstado_cliente').val(),
                    'cidade_edit': $('#slcCidade_cliente').val(),
                    'cep_edit': $('#txtCep_cliente').val(),
                    'tel_edit': $('#txtTelefone_cliente').val(),
                    'cel_edit': $('#txtCelular_cliente').val()
                },
                success: function(json){
                    $('#loading, #msg-loading').hide();
                    if(json.sucesso){
                        window.location = '/Carrinho/Index';
                    } else {
                        modalAlerta(json.mensagem);
                    }
                },
                error: function() { $('#loading, #msg-loading').hide(); }
            });
            break;
    }
}
function mascaraInput(){
    $('*[mascara=fone]').mask('(99) 9999-9999');
    $('*[mascara=cep]').mask("99999-999");
    $('*[mascara=data]').mask("99/99/9999");
    $("*[mascara=cpf]").mask("999.999.999-99");
}
function addCarrinho(produto){
    var acao = '/Carrinho/AddCarrinho/' + produto;
    $.ajax({
        url: acao,
        dataType: 'json',
        beforeSend: function(){ $('#loading, #msg-loading').show(); },
        success: function(json){ 
            $('#lbl_totalCarrinho').text(json);
            $('#loading, #msg-loading').hide();                         
        },
        error: function() { $('#loading, #msg-loading').hide(); }
    });
}
function totalCarrinho(){
    $.ajax({
        url: '/Carrinho/TotalCarrinho',
        dataType: 'json',
        success: function(json){ 
            $('#lbl_totalCarrinho').text(json);
        },
    });
}
/** Moeda **/
function calculaProduto(campo) {
    var campo_moeda = $(campo).parent().next().find('.moeda');
    var qtd = parseInt($(campo).val());
    var vUnitario = $(campo).parent().prev().text();
    var valor = vUnitario.replace('R$ ', '').replace(/,/gi, '.');
    var calculo_subtotal = (valor * qtd);

    var resultado = verificaCasaDecimal(roundNumber(calculo_subtotal, 2));

    $(campo_moeda).val(resultado);
    $(campo_moeda).priceFormat({ preFix: "R$ ", centsSeparator: ',', thousandsSeparator: '.' });
            
    //return false;
}
function roundNumber(number, digits) {
    var multiple = Math.pow(10, digits);
    var rndedNum = Math.round(number * multiple) / multiple;
    return rndedNum;
}
function verificaCasaDecimal(number) {
    var valor = number.toString().split(',')[1];
    var retorno;
    if (valor.length == 1)
        retorno = (number).toString() + 0;
    else
        retorno = number.toString();

    return retorno;
}
function totalProdutoPagar(els){
    if(els.length < 1) return;
    var total = 0;
    for(var i = 0; i < els.length; i++)
    {
        total += els[i];
    }   
    return verificaCasaDecimal(roundNumber(total, 2));
}
/** Fim Moeda **/
//Inicia o carregamento na pagina
$(function () {
    $('#loading, #msg-loading').hide();
    botoes();
    mascaraInput();
    init_views();    
})